Dynamic extensible lightweight access to web services for pervasive devices

ABSTRACT

A Generic Mobile Web Services (GMWS) manager provides mobile clients with access to Web Services. The GMWS manager provides an interface between Web Services and mobile clients (hand held PDAs for example). The GMWS manager maintains a registry of supported Web Services and metadata attributes about the Web Services and the mobile client. Information is transferred between a client and a registered web service by way of the GMWS manager based on attributes available to the GMWS manager.

FIELD OF THE INVENTION

The present invention is related to Web Services and is moreparticularly related to providing efficient client access to WebServices for pervasive devices.

BACKGROUND OF THE INVENTION

With the growing popularity of pervasive devices and the increasingbandwidth of wireless communications, users want to have access to moreservices at their finger tips while traveling without a PC. For example,a mobile salesperson may need services such as company inventory lookup,customer order status check, customer address lookup, etc.

A Web service is a software system identified by a URI, whose publicinterfaces and bindings are defined and described using XML. Itsdefinition can be discovered by other software systems. These systemsmay then interact with the Web service in a manner prescribed by itsdefinition, using XML based messages conveyed by Internet protocols.

Traditionally, developers had to write a program to enable the access toa web service. For non-developers, it's very difficult for them to finda program for each web service that they need to access. Also, writing aprogram for each web service results in substantial cost in developingand support.

US Patent Application Pub. No. 2004/0176958A1, “SYSTEM AND METHOD FORMULTIMODAL SHORT-CUTS TO DIGITAL SERVICES” filed Feb. 4, 2002,incorporated herein by reference, describes a method and system forfacilitating user access to services through a wireless device of auser, involves recommending to a user a subset of services from aplurality of services available to the user in which each recommendedservice of the subset has at least one voice short-cut associatedtherewith, and selecting a service to be accessed through the user'swireless device from the subset of services according to a voice commandby the user corresponding to the voice short-cut of the service.

US Patent Application Pub. No. 2004/0139151A1, “APPARATUS AND METHOD FORSELECTING A WEB SERVICE IN RESPONSE TO A REQUEST FROM A CLIENT DEVICE”filed Dec. 17, 2002, incorporated herein by reference, describes Anapparatus and method for selecting a web service in response to arequest from a client device are provided. With the apparatus and methodof the present invention, when an a request is received from a clientdevice for the invocation of a Web Services operation, the request isreceived in an off-ramp device coupled to an on-ramp device thatprovides an interface to Web Services. The off-ramp device verifies thatthe requested service is in a configuration file and then determines theselection scope of the desired service, as defined in the configurationfile. Based on the selection scope of the desired service, the off-rampcan determine whether to perform discovery and selection of a serviceimplementation (“request” selection scope), retrieve a serviceimplementation from a session level cache (“session” selection scope),or retrieve a service implementation from an application level cache(“application” selection scope). If a service implementationcorresponding to the requested service does not exist in the session orapplication level cache, the discovery and selection operations may beperformed to identify a service implementation to handle the request andthe service implementation may be stored in the appropriate cache.

US Patent Application Pub. No. 2004/0176958A1, “SYSTEM AND METHOD FORPROVIDING MULTI-MODAL INTERACTIVE STREAMING MEDIA APPLICATIONS” filedDec. 31, 2002, incorporated herein by reference, describes a method andsystem for facilitating user access to services through a wirelessdevice of a user, involves recommending to a user a subset of servicesfrom a plurality of services available to the user in which eachrecommended service of the subset has at least one voice short-cutassociated therewith, and selecting a service to be accessed through theuser's wireless device from the subset of services according to a voicecommand by the user corresponding to the voice short-cut of the service.

US Patent Application Pub. No. 2004/0030740A1 “METHOD AND SYSTEM FORAUTOMATING GENERATION OF WEB SERVICES FROM EXISTING SERVICE COMPONENTS”filed Aug. 9, 2002, incorporated herein by reference, describes acomputer-based method for generating a Web service. The method includesidentifying first and second service components for inclusion in the Webservice, which includes locating available services using servicedetectors that use differing search techniques and displaying thelocated services to the user to allow the user to make a selection toidentify the first and second service components. The method continueswith generating a description or contract for the Web service definingservice behavior including invoking rules. A transport structure is thencreated for accessing the new Web service such as a transmissionenvelope. The Web service is advertised as being available on thecommunications network including registering the Web service with aservices registry linked to the communications network.

US Patent Application Pub. No. 2003/0088421A1 “UNIVERSAL IP-BASED ANDSCALABLE ARCHITECTURES ACROSS CONVERSATIONAL APPLICATIONS USING WEBSERVICES FOR SPEECH AND AUDIO PROCESSING RESOURCES” filed Jun. 25, 2002,incorporated herein by reference, describes systems and methods forconversational computing and, in particular, to systems and methods forbuilding distributed conversational applications using a WebServices-based model wherein speech engines (e.g., speech recognition)and audio I/O systems are programmable services that can beasynchronously programmed by an application using a standard, extensibleSERCP (speech engine remote control protocol), to thereby providescalable and flexible IP-based architectures that enable deployment ofthe same application or application development environment across awide range of voice processing platforms and networks/gateways (e.g.,PSTN (public switched telephone network), Wireless, Internet, and VoIP(voice over IP)). Systems and methods are further provided fordynamically allocating, assigning, configuring and controlling speechresources such as speech engines, speech pre/post processing systems,audio subsystems, and exchanges between speech engines using SERCP in aweb service-based framework.

US Patent Application Pub. No. 2004/0030627A1 “WEB SERVICES BROKER”filed Apr. 18, 2003, incorporated herein by reference, describes a webservice broker method comprises providing an interface between anenterprise and at least one of a service client and a service provider,the service client discovering Web Services on a service registry andusing corresponding Web Services from the service provider,communicating between the enterprise and the at least one of the serviceclient and the service provider and performing at least one of a)converting information from/to the enterprise to a form appropriate forthe at least one of the service client and the service provider and b)converting information from/to the at least one of the service clientand the service provider to a form appropriate for the enterprise.

US Patent Application Pub. No. 2002/0174117A1 “MOBILE WEB SERVICES”filed May 15, 2001, incorporated herein by reference, describes a methodis disclosed to enable a mobile phone or wireless PDA to discoverInternet businesses and services by accessing the Universal Description,Discovery and Integration (UDDI) registry. The method facilitates theformation of a query to the UDDI registry for the wireless device user.The method constructs a personal user profile of the user's UDDIsearching strategies and Internet accessing preferences. The userprofile can be used as a shortcut for online or offline queries to theUDDI registry or for accessing pages from web sites, in response to theuser's entry of abbreviated inputs to the wireless device. The method isembodied as programmed instructions which may be executed within theuser's wireless device to query the UDDI registry. Alternately, methodis embodied as programmed instructions which may be executed within aseparate knowledge engine server to query the UDDI registry in responseto commands from the user's wireless device. The server can be used tocache files accessed from web sites, for selective forwarding to theuser's wireless device.

Browsers do not provide a means to access Web Services directly.Customized Web pages and programs have to be developed for each webservice to be accessed. This results in substantial cost in developingand support. Furthermore, using a browser to access Web Services fromweb pages involves extra network RTT (round trip time) as the customizedweb page and programs must be downloaded before the browser is capableof accessing the Web Service. With the communication bandwidthlimitation on pervasive devices, extra RTT has undesirable impact on theperformance of the system.

Another approach is to make a customized client application that talksto the service for each web service. The disadvantage of this approachis that eventually the number of applications will outgrow thememory/storage limit of the device as the services increase. The totalcost to develop, support and purchase each application is substantial.

SUMMARY OF THE INVENTION

The present invention recognizes that portable hand held devices (PDAs)could take advantage of a vast variety of services offered by WebServices if there were a way to register a subset group of Web Servicesof interest to the user of the PDA. Furthermore, it would beadvantageous to relieve the PDA from burdensome communications overheadand complex resident applications in order to have access to WebServices.

The present invention provides a method and process to quickly enabledynamic extensible lightweight access to Web Services on pervasivedevices.

The invention preferably comprises a server Generic Mobile Web Services(GMWS) Manager application running at a server. The GMWS Managerprovides an interface between mobile devices and Web Services. Theinterface with the Web Services is preferably WSDL (Web Service DesignLanguage).

Furthermore, the GMWS Manager maintains a Web Service Registry (WSR)which holds information about each web service that the GMWS Manager hasaccess to on behalf of the mobile devices. The Web Service Registrypreferably contains or has access to metadata that is used to providethe interfaces to both the Web Services and the Mobile Devices.

Preferably, the GMWS Manager is able to communicate with the Mobiledevices in a variety of ways. The GMWS manager has access to atranscriber that transcribes voice, digital data, natural language andtext to create Fast Path formatted structures to quickly access aparticular web service. The mobile device preferably permits users todirectly enter Fast Path formatted structures, bypassing the overhead ofthe transcriber function.

According to the invention, registered indication of one or moreselected Web Services are stored in a local registry of the GMWSmanager, the registered indication identifying the one or more selectedWeb Services. Furthermore, attributes of corresponding registered one ormore selected Web Services are stored. Client requests are transformedto a form required by a first web service of the one or more selectedWeb Services based on the stored attributes. Client requests areforwarded to the first web service.

Furthermore, according to the invention, web service responses aretransformed from the first web service based on the stored attributes toa form required by the client. Transformed web service responses areforwarded to the client.

A GUI representation of the registered one or more selected Web Servicesis presented to the client.

It is therefore, an object of the present invention to provide a dynamicextensible multimodal lightweight client solution to the Web Services sothat the user can access multiple Web Services while requiring only asingle application installation. By Multimodal we mean the user can useeither text or voice as input. By Dynamic we mean the client willdynamically generate the GUI (graphical user interface) based on theattributes of the Web Services; it also means as the web serviceevolves, the client GUI will adapt to the changes dynamically withoutclient code updates. By Extensible we mean new Web Services willautomatically show up on the client's screen as they become available,without any manual client change.

It is a further object of the invention to authorizing the clientpermission to access the first web service.

It is another object of the invention to support client requestsconsisting of any one of voice, natural language text, digital data orFast Path text.

It is another object of the invention to support attributes taken fromthe list of name of the first web service, description of the first webservice, security requirement of the first web service, one or morekeywords of the first web service, client name of the input field,client type of the input field, client default value of the input fieldand client flag to indicate if the field should be displayed.

It is another object of the invention to save a predefined number ofclient inputs received from the first client and provide predeterminedportions of saved client inputs to the client.

It is another object of the invention to receive client input from theclient, automatically transform the client input to a Fast Path form,the Fast Path form configured according to the stored attributes of aregistered web service, and provide the Fast Path form of the clientinput to the client.

It is a further object of the invention to provide a way for multipleWeb Services to be discovered and executed in multimodal mode (voiceand/or text) from a single application on pervasive devices.

It is a further object of the invention to provide an automated “FastPath” (semi-natural language) access to the web services from a mobiledevice.

Additional features and advantages are realized through the techniquesof the present invention. Other embodiments and aspects of the inventionare described in detail herein and are considered a part of the claimedinvention. For a better understanding of the invention with advantagesand features, refer to the description and to the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter which is regarded as the invention is particularlypointed out and distinctly claimed in the claims at the conclusion ofthe specification. The foregoing and other objects, features, andadvantages of the invention are apparent from the following detaileddescription taken in conjunction with the accompanying drawings inwhich:

FIG. 1 is a diagram depicting example prior art elements of a computersystem;

FIG. 2 is a diagram depicting example prior art elements of a computernetwork;

FIG. 3 is a diagram depicting example elements of an embodiment of theinvention;

FIGS. 4 and 5 are flows depicting steps for a client on a pervasivedevice accessing a web service;

FIG. 6 is a flow depicting steps for a client on a pervasive deviceaccessing a search web service in voice mode;

FIG. 7 is a flow depicting steps for a client on a pervasive deviceaccessing a search web service in Fast Path;

FIG. 8 is a flow depicting steps for a client on a pervasive deviceaccessing a search web service from a list of Web Services;

FIG. 9 is a PDA portrayed in 3 sequential views;

FIG. 10 is the PDA portrayed in 2 subsequent sequential views;

FIG. 11 is a PDA portrayed in 2 subsequent sequential views;

FIG. 12 is a PDA portrayed in 2 subsequent sequential views; and

FIG. 13 is a PDA portrayed in a subsequent view.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Due to the steady advances in technology, mobile computers are nowavailable as palm-top or hand-held devices, such as personal digitalassistants (PDAs), in-vehicle devices, business organizers, and thelike. In addition, many people now utilize cellular telephones to accessthe Internet and to perform various other computing functions. Portablecomputing devices including, but not limited to, palm-tops, PDAs, andcellular telephones are often collectively referred to as “pervasive” or“mobile” computing devices.

FIG. 1 illustrates a representative workstation or server hardwaresystem in which the present invention may be practiced. The system 100of FIG. 1 comprises a representative computer system 101, such as apersonal computer, a workstation or a server, including optionalperipheral devices. The workstation 101 includes one or more processors106 and a bus employed to connect and enable communication between theprocessor(s) 106 and the other components of the system 101 inaccordance with known techniques. The bus connects the processor 106 tomemory 105 and long-term storage 107 which can include a hard drive,diskette drive or tape drive for example. The system 101 might alsoinclude a user interface adapter, which connects the microprocessor 106via the bus to one or more interface devices, such as a keyboard 104,mouse 103, a Printer/scanner 110 and/or other interface devices, whichcan be any user interface device, such as a touch sensitive screen,digitized entry pad, etc. The bus also connects a display device 102,such as an LCD screen or monitor, to the microprocessor 106 via adisplay adapter.

The system 101 may communicate with other computers or networks ofcomputers by way of a network adapter capable of communicating with anetwork 109. Example network adapters are communications channels, tokenring, Ethernet or modems. Alternatively, the workstation 101 maycommunicate using a wireless interface, such as a CDPD (cellular digitalpacket data) card. The workstation 101 may be associated with such othercomputers in a Local Area Network (LAN) or a Wide Area Network (WAN), orthe workstation 101 can be a client in a client/server arrangement withanother computer, etc. All of these configurations, as well as theappropriate communications hardware and software, are known in the art.

FIG. 2 illustrates a data processing network 200 in which the presentinvention may be practiced. The data processing network 200 may includea plurality of individual networks, such as a wireless network and awired network, each of which may include a plurality of individualworkstations 101. Additionally, as those skilled in the art willappreciate, one or more LANs may be included, where a LAN may comprise aplurality of intelligent workstations coupled to a host processor.

Still referring to FIG. 2, the networks may also include mainframecomputers or servers, such as a gateway computer (client server 206) orapplication server (remote server 208 which may access a datarepository). A gateway computer 206 serves as a point of entry into eachnetwork 207. A gateway is needed when connecting one networking protocolto another. The gateway 206 may be preferably coupled to another network(the Internet 207 for example) by means of a communications link. Thegateway 206 may also be directly coupled to one or more workstations 101using a communications link. The gateway computer may be implementedutilizing an IBM eServer zSeries® 900 Server available from IBM Corp.

Software programming code which embodies the present invention istypically accessed by the processor 106 of the system 101 from long-termstorage media 107, such as a CD-ROM drive or hard drive. The softwareprogramming code may be embodied on any of a variety of known media foruse with a data processing system, such as a diskette, hard drive, orCD-ROM. The code may be distributed on such media, or may be distributedto users from the memory or storage of one computer system over anetwork to other computer systems for use by users of such othersystems.

Alternatively, the programming code 111 may be embodied in the memory105, and accessed by the processor 106 using the processor bus. Suchprogramming code includes an operating system which controls thefunction and interaction of the various computer components and one ormore application programs. Program code is normally paged from densestorage media 107 to high speed memory 105 where it is available forprocessing by the processor 106. The techniques and methods forembodying software programming code in memory, on physical media, and/ordistributing software code via networks are well known and will not befurther discussed herein.

In a preferred embodiment, the present invention is implemented as oneor more computer software programs 111. The implementation of thesoftware of the present invention may operate on a user's workstation,as one or more modules or applications 111 (also referred to as codesubroutines, or “objects” in object-oriented programming) which areinvoked upon request. Alternatively, the software may operate on aserver in a network, or in any device capable of executing the programcode implementing the present invention. The logic implementing thisinvention may be integrated within the code of an application program,or it may be implemented as one or more separate utility modules whichare invoked by that application, without deviating from the inventiveconcepts disclosed herein. The application 111 may be executing in a Webenvironment, where a Web server provides services in response torequests from a client connected through the Internet. In anotherembodiment, the application may be executing in a corporate intranet orextranet, or in any other network environment. Configurations for theenvironment include a client/server network, Peer-to-Peer networks(wherein clients interact directly by performing both client and serverfunction) as well as a multi-tier environment. These environments andconfigurations are well known in the art.

The present invention provides Web Services by way of a serverapplication to a mobile client device. The server application interpretskeywords from the client device to a form compatible with a desired webservice. Thus the client device requires minimal software knowledge ofthe web service as the server application manages the interfaces.Preferably, the server application has a list (registry) of supportedWeb Services and is able to provide the list to the client device. In apreferred embodiment, various forms of communications from the clientdevice are supported. For example text or audio voice are supportedwhereby the server application provides a translator for translatingvoice into text or text into voice.

Referring now to FIG. 3, the present invention is implemented on aClient Device 310 (Preferably a mobile handheld computer or PDA forexample) in communication with a Generic Mobile Web Services (GMWS)Manager 320. The GMWS Manager 320 has network access to Web Services 330and a UDDI Registry 340. Preferably networks comprise the Internet. Thecommunication protocol between 310 and 320, 320 and 330 are SOAP 301.

The SOAP Internet-Draft(search.ietf.org/internet-drafts/draft-box-http-soap-01.txt) providesthe following example of a SOAP request:

 1.  POST /StockQuote HTTP/1.1  2.  Host: www.stockquoteserver.com  3. Content-Type: text/xml  4.  Content-Length: nnnn  5.  SOAPMethodName:Some-Namespace-URI#GetLastTradePrice  6. <SOAP:Envelopexmlns:SOAP=“urn:schemas-xmlsoap-   org:soap.v1”>  7.  <SOAP:Body>  8.  <m:GetLastTradePrice xmlns:m=“Some-Namespace-URI”>  9. <symbol>DIS</symbol> 10.  </m:GetLastTradePrice> 11.  </SOAP:Body> 12.</SOAP:Envelope>This request can be divided into 2 parts:

-   -   HTTP header (lines 1-5)    -   XML-RPC payload (lines 6-12, the SOAP:Envelope element)

Client Device 310 preferably employs an operating system such asMICROSOFT WINDOWS™, MICROSOFT WINDOWS CE, PALM OS™, and BLACKBERRY™.

Generic Mobile Web Services (GMWS) Client 311 (referred to as the clientherein) resides in Client Device 310. It gets the Web Services metadatafrom GMWS Manager 320 and generates user interface for the user on theClient Device 310. It also sends the web service request to GMWS Manager320.

The GMWS client 311 is preferably implemented in JAVA™ programminglanguage as a standalone application installed on the device, whichshould provide a JVM™ (Java Virtual Machine).

GMWS Manager 320 includes four components: a Voice Transcription Service321, a Fast Path Parsing Service 322, a Web Service Dispatcher 323 and aWeb Service Registry 324.

Generic Mobile Web Services (GMWS) Manager is preferably implemented inJAVA programming language running as a server application in anApplication Server, such as IBM WEBSPHERE™.

Fast Path Parsing Service 322 is used for parsing and converting FastPath commands received from a client 311 into XML format. A Fast Pathcommand is a semi-natural language sentence. It has keyword(s) andseveral input attributes for a web service. The multi-word attributeshould be enclosed in quotes. The keywords and or command format isknown to the GMWS Manager's Fast Path Parsing service 322.

In one embodiment user of a GMWS client 311 wishes to send a request toa search web service to search ACME Company's help desk number. The usercan use the following Fast Path command:

-   -   search “what is acme help desk telephone number?”

Here “search” is the keyword for the search web service, and “what isacme help desk telephone number?” is the single attribute for the searchweb service.

In another embodiment a user wishes to check the status of a customerorder, user enters the following text into his PDA client device 310 thefollowing Fast Path command:

check order status “ACME” “order 123456”

Here “check order status” is the keyword for customer order status checkweb service, and “ACME” and “order 123456” are the two attributes forthe customer order status check web service.

In one embodiment, the GMWS manager 320 accepts audio input. Here, aVoice Transcription Service 321 is used for transcribing a voice inputto text. Voice Transcription Services are exemplified in U.S. patentapplication Ser. No. 10/979,334 “Method, System of Enabling Intelligentand Lightweight Speech to Text TRANSCRIPTION Through DistributedEnvironment” assigned to IBM, filed Nov. 2, 2004 and incorporated hereinby reference.

In the embodiment, the user provides the Web Services request byspeaking the Fast Path command into a microphone of the client device310. The audio is sent from the Client Device 310 to the voicetranscription service 321. Preferably the text transcription service 321returns the text version of the voice request to the user's ClientDevice 310 to confirm accuracy so that the user can modify it if thetranscription is not accurate (100% accurate). In an implementation, theGMWS Manager provides prompts or clues to the Client 311 when thereceived text appears to have syntax errors, incomplete statements orthe like.

Web Services Registry (WSR) 324 contains the metadata information ofmanaged mobile Web Services. Available Web Services 330 may include oneor more web service 331-334. Each web service 331-334 can be registeredwith the Web Services Registry 324 by providing the following metadata:

-   1. Name of the web service-   2. Category of the web service-   3. Endpoint of the web service-   4. Operation of the web service-   5. Description of the web service-   6. Name of the input and output field-   7. Type of the input and output field-   8. Default value of the input field if applicable-   9. Keyword(s) of the first web service-   10. Flag to identify whether or not to display the field to the user    on Client Device 310-   11. An XSL style sheet for output transformation if applicable-   12. A template for Fast Path command parsing-   13. Security requirement of the first web service

The items 1 to 8 can also be obtained from a UDDI Registry 340 if theweb service 331-334 has a Universal Description Discovery Interface(UDDI) entry. The WSR 324 will get information such as therequest/response message format, service address etc. from the UDDIentry. The template for Fast Path Parsing can be implemented as aregular expression.

Web Services Dispatcher (WSD) 323 gets the web service request from theclient 311. A request is sent from the client 311 in either xml formator Fast Path format.

An example XML request from client for Order Status Check web service is

<service name=“check order status”>    <arg>ACME></arg>   <arg>order123456</arg>  </service>

If the text is in Fast Path format, the text will be sent to Fast PathParsing Service 322 to get parsed and converted to XML format.

Web Services Dispatcher 323 is also responsible for invoking the webservice 331-334 after receiving the request from the client. Apreprocess may be applied to add in any hidden input fields beforeinvoking the Web Services 330. After a response is received from the webservice 331-334, the response may be transformed by the Web ServicesDispatcher 323 to a form acceptable by the client 311 and thentransferred back to the client 311.

Referring to FIG. 4, an embodiment of a Client 311 logging into the GMWSservices is shown. The user starts the GMWS client application 401 athis Client Device 310. The user provides his credentials (ID andPassword) 402. (The credentials might be saved at the Client 311 suchthat they are automatically provided by the client software 311. Theclient 311 requests 404 a list of Web Services from the GMWS Manager 320with user predefined profile. The client 311 receives a list of WebServices and metadata 405 from the GMWS Manager 320. The metadatareceived 405 is used by the client 311 to formulate communications toand from the GMWS Manager and to provide GUI structure. Preferably, auser can elect one of many 406 communications means to access a webservice. For example, Voice, Fast Path (predetermined syntax rule text),natural language or by selecting a specific web service.

Referring to FIG. 5, the user may elect any of Voice input 501, FastPath input 503 or a specific web service 506 for communications with theGMWS Manager 320. In the case of Voice input 501, the client calls 502the Voice Transcription component and optionally receives the textversion of his voice call. (Optionally, the user may receive a voiceversion of the text response). The user checks the response as Fast Pathsyntax 504. Optionally the user can make adjustments to his originalsyntax in light of the response text 502. The client 311 calls the WSDfor Fast Path input 505. Finally, the client receives the response andgenerates a GUI display 510.

Optionally the user may have elected to provide Fast Path input 503, inwhich case his input is directed to WSD 505 to initiate the Web Servicetransaction. Finally, the client receives the response and generates aGUI display 510.

Optionally the user elects to select 506 a specific web service. Thesystem generates 507 the input interface for that web service. The userprovides 508 input which the client 311 uses to generate 509 XML inputand calls WSD for XML input. Finally, the client receives the responseand generates a GUI display 510.

Three flow examples will now teach elements of the present invention.Two versions of Fast Path access are shown, the first demonstrating anexample of a Voice initiated transaction, the next demonstrating a Textinitiated transaction. A third version demonstrates a GUI driventransaction. It should be noted that for the Fast Path transactions, theFast Path language from the client determines not only the elements ofthe transaction but also which web service is being accessed. The GUIdriven transaction provides a GUI assist at the client tailored to aspecific web service.

Web Services 330 are selected for incorporation in the Web ServicesRegistry 324 via WSDL. Many methods might be employed to populate theWeb Services Registry. More than one Web Services Registry might beemployed. In one embodiment, a group of subscribers share a Web ServicesRegistry. In another embodiment, permission for individual Web Servicesof the Registry or permission to access one of a plurality of registriesis defined at Login time 601-602. In another embodiment, a clientnegotiates for permission to access a web service of the list of WebServices when it initiates its first use of the web service.

Preferably, each example transaction begins with the client beingauthenticated for the GMWS Manager 320. Referring to FIG. 6, the clientsends 601 its login request along with credentials to GMWS Manager 320,which in turn invokes 610 the Authentication Web Service; theAuthentication Web Service verifies 618 user's credential and returns611 the status back to GMWS Manager 320. The client receives 602 theauthentication status and if the authentication is successful, theclient continues by sending 603 a request to the Web Service Dispatcher323 for a Web Services list. The request 603 includes a personalizedprofile managed on the client. The personalized profile may in oneembodiment be used by the GMWS Manager to determine which Web Servicesof the Registry 324 are authorized for the client to use. The list andmetadata is retrieved from the Web Services Registry 612 and returned604 to the client. The metadata supports the client 311 use of the WebServices on the list.

If the client 311 elects to transmit an Audio (Voice) request 605, theaudio request is transcribed 613 by the Voice Transcription Service 321into text. The text (or optionally a voice simulation of the text) isreturned 606 to the client 311 so the user can verify that the audio wastranslated correctly before proceeding. If there is an error, the textis corrected and sent 607 back to the GMWS Manager 320 as Fast Pathsyntax. The Fast Path parsing service 322 locates the target web service330 from the WS Registry 324 and causes the WS Dispatcher 323 todispatch 615 the request to the target Web Service (Search service inthe example). The Search Web Service processes 619 the request and sendsa response 616 to the GMWS manager 320 which formats the response ifneeded 617 and returns 608 a result to the client 311 which formats andpresents 609 the result at the client device 310.

Referring to FIG. 7, the steps up to 604 of the Audio example are thesame as shown in FIG. 6. However, the client 311 elects to transmit FastPath text rather than Audio, the Fast Path text request 701 istransmitted to the GMWS Manager 320 where it is parsed 614 by the FastPath Parsing Service 322 to locate the Web Service from the WS Registry324. The WS dispatcher 323 dispatches 615 the request to the selected(Search) Web Service 330 using metadata associated with the web Service.As in the example of FIG. 6, the Search Web Service processes 619 therequest and sends a response 616 to the GMWS manager 320 which formatsthe response if needed 617 and returns 608 a result to the client 311which formats and presents 609 the result at the client device 310.

Referring to FIG. 8, the steps up to 604 of the Audio example are thesame as shown in FIG. 6. However, in this example, the user selects 801one specific web service, such as the search web service, from the list.The client generates 802 the user interface of that search service basedon the metadata dynamically. The user then fills the input values andsends 803 the service request to the Web Services Dispatcher 323. Anexample request as, putting “What is ACME help desk phone number?” inthe generated question field on the interface. After getting therequest, Web Services Dispatcher 323 dispatches the request 615 to thedesired (Search) web service. The Search web service processes thesearch request 619, and sends 616 the results back to Web ServicesDispatcher 323. Web Services Dispatcher 323 may format 617 the resultsif that's defined in the metadata for this web service. The results arethen sent 608 back to the client 311. The client 311 further formats 609the results and presents the results to the user.

A user's view of an embodiment of the invention is shown beginning inFIG. 9. A Client Device 310 is shown as a PDA. The PDA 901 comprises aviewable area (screen) 902 and a keyboard 903. The screen displayswidgets 904-908 for applications available to the user. The user selectsthe GMWS (Generic Mobile Web Services) client application 908 whichcauses the PDA 909 to display the splash screen 910 for the GMWSapplication. The PDA 911 then displays a pull down menu 912 including:Hide Menu, Login, Settings 913, About and Close options. The userselects the Settings 913 option. This results in FIG. 10, the PDA 1000displaying a settings screen for logging onto the GMWS application. Theuser enters his ID and Password, the PDA 1001 now displays a pull downmenu 1002 including Hide Menu, OK 1003, Cancel and Close options. Theuser selects OK 1003. Referring to FIG. 11 the PDA 1100 now displays apull down menu 1102 including: Hide Menu, Login 1103, Settings, About,and close options. The user selects the Login 1103 option. Once loggedin, the PDA 1101 now displays 1104 a services list retrieved from the WSRegistry 324 using the associated metadata. The options include FastPath1105 and Services 1106. The list of Services 1106 include Mail, PeopleFinder, Search 1107, StockQuote and Weather web service options. Theuser selects Search 1107. Referring now to FIG. 12, the PDA 1200 nowdisplays a prompt 1202 “Question” followed by the user's supplied input“what's acme helpdesk number?”. The GMWS manager takes the web servicerequest, processes it and sends the response 1204-1207 back to theuser's PDA 1201 screen 1203.

Referring to FIG. 13, finally the PDA 1300 displays recent searchquestions 1302 previously submitted by the user as context menus 1301.These are preferably stored at the PDA and are available at futuresessions.

Example XML

Example XML code for the request 603 for Web Services list withpersonalized profile from the GMWS Client 310 to the GMWS Manager 320 isshown in Table 1. The profile describes what kind of service that theuser is interested in. Table 1 shows an example profile for a user whois interested in getting stock and search services, as well as locationbased services. This profile can be used to filter out the unwantedservices.

TABLE 1 <profile> location=“true”>   <service>stock</service>  <service>search</service> </profile>

The Web Services Registry 324 maintains the list of Web Servicesincluding metadata. An example content of such a registry is shown inTable 2. The meaning of symbols in Table 2 are shown in Table 3:

TABLE 2 <services>   <service name=“Search”      url=“http://www.acme.com/services/search”       urn=“acme-search”      method=“getSearchResult”       returnType=“String”      credentials=“y”       keyword=“search”       help=“This is a webservice to get answers to your question. Fast Path command: search‘question’. For example, search ‘what is acme help desk phone number’.”      n1=“(search|ask)[\s]+.+”       xsl=“search.xsl”>     <paramname=“Question” show=“true”/>     <param name=“Questions to Return”show=“false” value=“4” type=“java.lang.Integer”/>     <paramname=“timeout” show=“false” value=“30” type=“java.lang.Integer”/>    <param name=“maxLength” show=“false” value=“256”type=“java.lang.Integer”/>   </service>   <service name=“Stock Quote”      url=“http://www.acme.com/services/stock”       urn=“acme-stock”      method=“getQuotes”       returnType = “String”      credentials=“n”       keyword=“quote”       help=“This is a webservice to get stock quote. Fast Path command: quote ‘ticker1,ticker2’.For example, quote acme.”       n1=“quote[\s]+.+”       xsl=””>    <param name=“Ticker”/>   </service>   <service name=”weather”    url=“http://www.acme.com/services/weather”       urn=“acme-weather”      method=“getWeather”       returnType = “String”      credentials=“n”       keyword=“what's the weather of”      help=“This is a web service to lookup the weather. Fast Pathcommand: what's the weather of zipcode. For example, what's the weatherof 12345.”       n1=“what's the weather of[\s]+[0-9]{5}”       xsl=””>    <param name=“zipcode”/>   </service> </services>

TABLE 3  service: defines metadata for one web service   name: name ofthe web service   url, urn: endpoint of the web service   method: nameof the operation of the web service   returnType: type of data returnedby the web service   credentials: defines if the user credential isrequired by the   web service   keyword: keyword used to auto-generatethe Fast Path command   help: help message to be displayed on the device  nl: regular expression used to parse Fast Path command   xsl: templateused to transform the output of the web service.   Optional. param:defines input parameter for the web service   name: name of theparameter   show: flag to indicate if this parameter will be displayedon the client device. The flag is Optional. If it's not defined, theparameter will be shown to the client.   value: default value to bedisplayed on the client device. The value is Optional.   type: type ofthe input parameter. By default, it's “String”.   Enum: Comma separatedenumeration values.

An example of metadata returned 604 to the GMWS client 310 is shown inTable 4:

TABLE 4 <services>   <service name=“Search”       credentials=“y”      keyword=“search”       help=“This is a web service to get answersto your question. Fast Path command: search ‘question’. For example,search ‘what is acme help desk phone number’.”     <paramname=“Question”/>   </service>   <service name=“Stock Quote”      credentials=“n”       keyword=“quote”       help=“This is a webservice to get stock quote. Fast Path command: quote ‘ticker1,ticker2’.For example, quote acme.”     <param name=“Ticker”/>   </service></services>

The capabilities of the present invention can be implemented insoftware, firmware, hardware or some combination thereof.

As one example, one or more aspects of the present invention can beincluded in an article of manufacture (e.g., one or more computerprogram products) having, for instance, computer usable media. The mediahas embodied therein, for instance, computer readable program code meansfor providing and facilitating the capabilities of the presentinvention. The article of manufacture can be included as a part of acomputer system or sold separately.

Additionally, at least one program storage device readable by a machine,tangibly embodying at least one program of instructions executable bythe machine to perform the capabilities of the present invention can beprovided.

The flow diagrams depicted herein are just examples. There may be manyvariations to these diagrams or the steps (or operations) describedtherein without departing from the spirit of the invention. Forinstance, the steps may be performed in a differing order, or steps maybe added, deleted or modified. All of these variations are considered apart of the claimed invention.

While a preferred embodiment of the invention has been illustrated anddescribed herein, it is to be understood that the invention is notlimited to the precise construction herein disclosed, and the right is“reserved” to all changes and modifications coming within the scope ofthe invention as defined in the appended claims.

What is claimed is:
 1. A computer implemented method for providing WebServices to clients by way of a Mobile Web Services manager (MWSM), themethod comprising: based on receiving, by a processor at the MWSM, alist request from a client, sending information for accessing WebServices of a first plurality of Web Services to the client, wherein theinformation for accessing Web services comprises a list of items andmetadata for accessing the Web Services using a fastpath request and anXML request, the list of items comprising a first item corresponding toa name of a Web Service in the first plurality of Web Services and atleast a second item corresponding to a command keyword associated withthe Web Service in the first plurality of Web Services, wherein thecommand keyword auto-generates a command to be performed by the WebService, wherein the information for accessing Web Services indicates aset of information required by a given Web Service to be included by theclient when creating each of an XML request and a fastpath requestaccepted by the given Web Service, and wherein the set of informationrequired by the given Web Service when creating an XML request comprisesat least a name of the given Web Service as indicated by the first itemin the list of items, and wherein the set of information required by thegiven Web Service when creating a fastpath request comprises at leastthe command keyword, as indicated by the second item in the list ofitems, supported by the given Web Service, wherein the metadatacomprises a structure of a dynamic graphical user interface structure,specific to at least one Web Service in the first plurality of WebServices, and configures the client to generate the dynamic graphicaluser interface based on the structure, wherein the structure comprisesat least a name of an input field of the at least one Web Service, and atype of the input field of the at least one Web Service; wherein basedon receiving an XML request from the client at the MWSM comprising botha selection of a Web Service and a service request associated with theselected Web Service, forwarding a corresponding XML request to theselected Web Service identified by the received XML request; and basedon forwarding the corresponding XML request, forwarding a response fromthe selected Web Service to the client; and wherein based on receiving afastpath request from the client at the MWSM comprising both a commandkeyword and a service request associated with a Web Service, parsing thefastpath request to identify the Web Service associated with thefastpath request and corresponding request attributes associated withthe service request, wherein the identified Web Service is identifiedbased on the command keyword, and wherein the fastpath request comprisesthe set of information required by the identified Web Service to performthe service request; determining that the identified Web Service acceptsXML requests; based on determining that the identified Web Serviceaccepts XML requests, creating an XML request, wherein the created XMLrequest includes the corresponding request attributes associated withthe service request that have been parsed from the fastpath request andconverted into an XML format; forwarding the created XML request to theidentified Web Service; and based on forwarding the created XML request,forwarding a response from the identified Web Service to the client. 2.The method according to claim 1, further comprising transforming theresponse from the identified Web Service to audio, wherein the audio isforwarded in the forwarding the response from the identified Web Serviceto the client.
 3. The method according to claim 1, further comprising:discovering the first plurality of web services; storing a registeredindication of the first plurality of Web Services in a local registry ofthe MWSM, the registered indication identifying the first plurality ofWeb Services supported by the MWSM, the first plurality of Web Servicescomprising a second plurality of Web Services; storing attributes ofeach of the first plurality of Web Services, the attributes comprisinginformation describing interfaces of corresponding Web services; andusing the stored attributes and the registered indication to create theinformation for accessing Web Services of the first plurality of WebServices.
 4. The method according to claim 1, wherein the list requestfurther comprises a set of user credentials further comprising:determining the list based on a user predefined profile corresponding tothe set of user credentials.
 5. The method according to claim 1, furthercomprising: based on not having a saved permission for the client to usethe identified Web Service, negotiating client permission to use asecond Web Service; and based on obtaining permission, saving thenegotiated permission for the client to use the second Web Service.
 6. Acomputer program product for providing Web Services to clients by way ofa Mobile Web Services manager (MWSM), the computer program productcomprising a non-transitory storage medium readable by a processingcircuit and storing instructions for execution by the processing circuitfor performing a method comprising: based on receiving at the MWSM alist request from a client, sending information for accessing WebServices of a first plurality of Web Services to the client, wherein theinformation for accessing the Web services comprises a list of items andmetadata for accessing the Web Services using a fastpath request and anXML request, the list of items comprising a first item corresponding toa name of a Web Service in the first plurality of Web Services and atleast a second item corresponding to a command keyword associated withthe Web Service in the first plurality of Web Services, wherein thecommand keyword auto-generates a command to be performed by the WebService; wherein the information for accessing Web Services indicates aset of information required by a given Web Service to be included by theclient when creating each of an XML request and a fastpath requestaccepted by the given Web Service, wherein the set of informationrequired by a the given Web Service when creating an XML requestcomprises at least a name of the given Web Service as indicated by thefirst item in the list of items, and wherein the set of informationrequired by the given Web Service when creating a fastpath requestcomprises at least the command keyword, as indicated by the second itemin the list of items, supported by the given Web Service, wherein themetadata comprises a structure of a dynamic graphical user interfacestructure, specific to at least one Web Service in the first pluralityof Web Services, and configures the client to generate the dynamicgraphical user interface based on the structure, wherein the structurecomprises at least a name of an input field of the at least one WebService, and a type of the input field of the at least one Web Service;wherein based on receiving an XML request from the client at the MWSMcomprising both a selection of a Web Service and a service requestassociated with the selected Web Service, forwarding a corresponding XMLrequest to the selected Web Service identified by the received XMLrequest; and based on forwarding the corresponding XML request,forwarding a response from the selected Web Service to the client; andwherein based on receiving a fastpath request from the client at theMWSM comprising both a command keyword and a service request associatedwith a Web Service, parsing the fastpath request to identify the WebService associated with the fastpath request and corresponding requestattributes associated with the service request, wherein the identifiedWeb Service is identified based on the command keyword, and wherein thefastpath request comprises the set of information required by theidentified Web Service to perform the service request; determining thatthe identified Web Service accepts XML requests; based on determiningthat the identified Web Service accepts XML requests, creating an XMLrequest, wherein the created XML request includes the correspondingrequest attributes associated with the service request that have beenparsed from the fastpath request and converted into an XML format;forwarding the created XML request to the identified Web Service; andbased on forwarding the created XML request, forwarding a response fromthe identified Web Service to the client.
 7. The computer programproduct according to claim 6, wherein based on receiving a fastpathrequest further comprises: receiving an audio (voice) fastpath requestfrom the client; and transforming the received audio into a fastpathtext request comprising fastpath text.
 8. The computer program productaccording to claim 7, wherein the method further comprises: returningthe fastpath text request to the client, the returned fastpath textrequest enabling the client to edit the fastpath text to send an editedfastpath text request.
 9. The computer program product according toclaim 6, wherein the method further comprises: transforming the responsefrom the identified Web Service to audio, wherein the audio is forwardedin the forwarding the response from the identified Web Service to theclient.
 10. The computer program product according to claim 6, whereinthe method further comprises: discovering the first plurality of webservices; storing a registered indication of the first plurality of WebServices in a local registry of the MWSM, the registered indicationidentifying the first plurality of Web Services supported by the MWSM,the first plurality of Web Services comprising a second plurality ofselected Web Services; storing attributes of each of the first pluralityof Web Services, the attributes comprising information describinginterfaces of corresponding Web services; and using the storedattributes and the registered indication to create the information foraccessing Web Services of the first plurality of Web Services.
 11. Thecomputer program product according to claim 6, wherein the MWSMcomprises a voice transcription service for transforming audio intotext, a fastpath parsing service for parsing fastpath text requests, aweb service dispatcher for communicating between the client and webservices of the first plurality of web services and a web serviceregistry for storing a registered indication identifying the firstplurality of Web Services supported by the MWSM.
 12. The computerprogram product according to claim 6, wherein the list request furthercomprises a set of user credentials, wherein the method furthercomprises: determining the list based on a user predefined profilecorresponding to the set of user credentials.
 13. The computer programproduct according to claim 6, wherein the method further comprises:based on not having a saved permission for the client to use theidentified Web Service, negotiating client permission to use a secondWeb Service; and based on obtaining permission, saving the negotiatedpermission for the client to use the second Web Service.
 14. A systemfor providing Web Services to clients by way of a Mobile Web Servicesmanager (MWSM), the system comprising: one or more networks; a mobileweb service manager computer system in communication with one or moreWeb Service computer systems by way of a network of the one or morenetworks, the mobile web service manager computer system further innetwork communication with one or more mobile client computer systems,wherein the mobile client computer system comprises a MWSM, wherein themobile web service manager computer system is capable of performing amethod comprising: based on receiving at the MWSM a list request from aclient, information for accessing Web Services of a first plurality ofWeb Services to the client, wherein the information for accessing theWeb services comprises a list of items and metadata for accessing theWeb Services using a fastpath request and an XML request, the list ofitems comprising a first item corresponding to a name of a Web Servicein the first plurality of Web Services and at least a second itemcorresponding to a command keyword associated with a the Web Service inthe first plurality of Web Services, wherein the command keywordauto-generates a command to be performed by the Web Service; wherein theinformation for accessing Web Services indicates a set of informationrequired by a given Web Service to be included by the client whencreating each of an XML request and a fastpath request accepted by thegiven Web Service, wherein the set of information required by the givenWeb Service when creating an XML request comprises at least a name ofthe given Web Service as indicated by the first item in the list ofitems, and wherein the set of information required by the given WebService when creating a fastpath request comprises at least the commandkeyword, as indicated by the second item in the list of items, supportedby the given Web Service, wherein the metadata comprises a structure ofa dynamic graphical user interface, specific to at least one Web Servicein the first plurality of Web Services, and configures the client togenerate the dynamic graphical user interface based on the structure,wherein the structure comprises at least a name of an input field of theat least one Web Service, and a type of the input field of the at leastone Web Service; wherein based on receiving an XML request from theclient at the MWSM comprising both a selection of a Web Service and aservice request associated with the selected Web Service, forwarding acorresponding XML request to the selected Web Service identified by thereceived XML request; and based on forwarding the corresponding XMLrequest, forwarding a response from the selected Web Service to theclient; and wherein based on receiving a fastpath request from theclient at the MWSM comprising both a a command keyword and a servicerequest associated with a Web Service, parsing the fastpath request toidentify the Web Service associated with the fastpath request andcorresponding request attributes associated with the service request,wherein the identified Web Service is identified based on the commandkeyword, and wherein the fastpath request comprises the set ofinformation required by the identified Web Service to perform theservice request; determining that the identified Web Service accepts XMLrequests; based on the parsed fastpath request, creating an XML request;forwarding the XML request to the identified Web Service, the XMLrequest comprising the corresponding request attributes including theset of information required by the identified Web Service to perform theservice request; and based on forwarding the XML request, forwarding aresponse from the identified Web Service to the client.
 15. The systemaccording to claim 14, wherein based on receiving a fastpath requestfurther comprises: receiving an audio (voice) fastpath request from theclient; and transforming the received audio into a fastpath text requestcomprising fastpath text.
 16. The system according to claim 15, whereinthe method further comprises: returning the fastpath text request to theclient, the returned fastpath text request enabling the client to editthe fastpath text to send an edited fastpath text request.
 17. Thesystem according to claim 14, wherein the method further comprises:transforming the response from the identified Web Service to audio,wherein the audio is forwarded in the forwarding the response from theidentified Web Service to the client.
 18. The system according to claim14, wherein the method further comprises: discovering the firstplurality of web services; storing a registered indication of the firstplurality of Web Services in a local registry of the MWSM, theregistered indication identifying the first plurality of Web Servicessupported by the MWSM, the first plurality of Web Services comprising asecond plurality of Web Services; storing attributes of each of thefirst plurality of Web Services, the attributes comprising informationdescribing interfaces of corresponding Web services; and using thestored attributes and the registered indication to create theinformation for accessing Web Services of the first plurality of WebServices.
 19. The system according to claim 14, wherein the MWSMcomprises a voice transcription service for transforming audio intotext, a fastpath parsing service for parsing fastpath text requests, aweb service dispatcher for communicating between the client and webservices of the first plurality of web services and a web serviceregistry for storing a registered indication identifying the firstplurality of Web Services supported by the MWSM.
 20. The systemaccording to claim 14, wherein the list request further comprises a setof user credentials further comprising: determining the list based on auser predefined profile corresponding to the set of user credentials.21. The system according to claim 14, wherein the method furthercomprises: based on not having a saved permission for the client to usethe identified Web Service, negotiating client permission to use asecond Web Service; and based on obtaining permission, saving thenegotiated permission for the client to use the second Web Service.